package com.spring.rechargeapi.web.service;

import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.springframework.validation.BindingResult;

import com.spring.membercardapi.web.model.*;
import com.spring.rechargeapi.web.requestModel.ApplicationUpdate;

public interface RechargeApiService {
	Map<String,Object> rechargeRule();
	Map<String, Object> applyCard (String token,String recharge_amount,String user_name,String identity_card,
			String phone,String apply_way_code,String rechargecard_level_code)  throws Exception;
	Map<String, Object> getApplicationList (String token)  throws Exception;
	Map<String, Object> updateApplication(String token,
			String recharge_application_id, String recharge_amount,
			String user_name, String identity_card, String phone)
			throws Exception;
	Map<String, Object> cancelApplication(String token,
			String recharge_application_id, String cancel_reason)
			throws Exception;
	Map<String, Object> getCardList(String token,String rechargecard_id)
			throws Exception ;
	Map<String, Object> checkOutCreateBill(String token,String rechargecard_id,String custom_amount,
			String business_type_code,String kids_park_id,String comment,String payment_way_code)
			throws Exception;
	Map<String, Object> checkOut(String token, String card_consume_his_id, String rechargecard_id, 
			String amount) throws Exception ;
	
	
	
	Map<String, Object> getRechargeBillList(String token,String rechargecard_id,String page_size,
			String page_index,String skip,String rows) throws Exception ;
	Map<String, Object> getRechargeHistory(String token,String rechargecard_id,String page_size,
			String page_index,String skip,String rows)
			throws Exception ;
	Map<String, Object> getPackageList(String token,String kids_park_id,String rechargecard_id,String page_size,
			String page_index,String skip,String rows)
			throws Exception ;
	 Map<String, Object> buyPackage(String token, String rechargecard_id,
			String package_id, String c_family_member_id, String comment,String baby_name)
			throws Exception;
	 Map<String, Object> getCardDetailList(String token,String rechargecard_id,String c_family_member_id)
			throws Exception;
	 Map<String, Object> getApplyCondition() throws Exception;
	 
	 Map<String, Object> calculateUserGetAmount (String recharge_amount,String rechargeCardCategory,String discount_type)  throws Exception;
	 
	 Map<String, Object> applyCardBackground  (String point,String rechargeCardCategory,String phone, String family_phone, String address, String zipcode, String recharge_amount,
			 String apply_way_code, 
			 String auditor_id, String auditor_name,String desc,String operater_id, String operater_name, String consume_recommend_id,
				String consume_recommend_name,String kids_park_id,List<Map<String,Object>> babies,List<Map<String,Object>> guardians,String apply_type,
				String consume_recommend_deptID,String consume_recommend_dept_name,String InitialOperatorID
				 ,String InitialOperatorName,String earnestMoney,String discount_type,HttpServletRequest request)  throws Exception;
	 Map<String, Object> applyCardPayment(String c_recharge_applicationID,String payment_amount,
				String card_number,String card_out_number,String contract_name,String begin_time,String end_time,String file,
				String OperatorID,String OperatorName,int hasPackage,String contractID,String orderID,String totalDueAmount,String earnestMoney,
				String discount_type) throws Exception;
	 Map<String, Object> getApplicationByID(String applicationID) throws Exception ;
	Object updateapply(
			com.spring.rechargeapi.web.requestModel.ApplicationUpdate application,
			BindingResult result,HttpServletRequest request) throws Exception  ;
}
